<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>规格术语</title>
</head>
<body>
    <h1>规格术语</h1>

    <script>
        // Record 记录
        const record = {
            [[Type]]: 'Normal',
            [[Value]]: 42,
            [[Target]]: 'example'
        };

        // List 列表
        const list = ['a', 'b', 'c'];

        // Completion Record 完成记录
        function example() {
            try {
                return 42; // [[Type]]: return, [[Value]]: 42
            } catch(e) {
                // [[Type]]: throw, [[Value]]: e
            }
            // [[Type]]: normal, [[Value]]: undefined
        }

        // Reference 引用
        let foo = 1; // foo是一个引用
        foo = 2; // 更新引用的值

        // Property Descriptor 属性描述符
        const descriptor = {
            value: 42,
            writable: true,
            enumerable: true,
            configurable: true
        };

        Object.defineProperty({}, 'prop', descriptor);

        // Lexical Environment 词法环境
        function lexicalExample() {
            let x = 1;
            function inner() {
                console.log(x); // 可以访问外部词法环境
            }
            inner();
        }

        // Environment Record 环境记录
        function environmentExample() {
            var a = 1; // 声明式环境记录
            with (obj) { // 对象式环境记录
                b = 2;
            }
        }
    </script>
</body>
</html> 